From a1b3a26ba488c2262caa0ed142ddba9f74cd2b3d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Thu, 4 May 2017 16:04:49 +0200 Subject: [PATCH] widget: Add private gtk_widget_get_content_allocation --- gtk/gtkwidget.c | 23 +++++++++++++++++++++++ gtk/gtkwidgetprivate.h | 4 ++++ 2 files changed, 27 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 028be43405..5d7f9ab8e2 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -13646,6 +13646,29 @@ gtk_widget_get_allocation (GtkWidget *widget, *allocation = priv->allocation; } +void +gtk_widget_get_content_allocation (GtkWidget *widget, + GtkAllocation *allocation) +{ + GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); + GtkBorder margin, border, padding; + GtkCssStyle *style; + + style = gtk_css_node_get_style (priv->cssnode); + get_box_margin (style, &margin); + get_box_border (style, &border); + get_box_padding (style, &padding); + + *allocation = priv->allocation; + + allocation->x += margin.left + border.left + padding.left; + allocation->y += margin.top + border.top + padding.top; + allocation->width -= margin.left + border.left + padding.left + + margin.right + border.right + padding.right; + allocation->height -= margin.top + border.top + padding.top + + margin.bottom + border.bottom + padding.bottom; +} + /** * gtk_widget_set_allocation: * @widget: a #GtkWidget diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h index 5211b407ed..404969bc91 100644 --- a/gtk/gtkwidgetprivate.h +++ b/gtk/gtkwidgetprivate.h @@ -94,6 +94,8 @@ struct _GtkWidgetPrivate guint halign : 4; guint valign : 4; + guint clip_set : 1; + guint8 alpha; guint8 user_alpha; @@ -316,6 +318,8 @@ void gtk_widget_focus_sort (GtkWidget *wi gboolean gtk_widget_focus_move (GtkWidget *widget, GtkDirectionType direction, GPtrArray *focus_order); +void gtk_widget_get_content_allocation (GtkWidget *widget, + GtkAllocation *allocation); GtkWidget * gtk_widget_common_ancestor (GtkWidget *widget_a, GtkWidget *widget_b); -- 2.30.2